home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu096.dms / pu096.adf / Dots-Perfect / wait.asm < prev   
Assembly Source File  |  1991-07-08  |  1KB  |  70 lines

  1. ******************************* Wait routine ******************************
  2.  
  3.     SECTION        printer
  4.  
  5. *--------- Included Files -------------------------------------------------
  6.  
  7.     INCLUDE        "exec/types.i"
  8.     INCLUDE        "exec/ports.i"
  9.     INCLUDE        "exec/devices.i"
  10.     INCLUDE        "exec/io.i"
  11.  
  12.     INCLUDE        "devices/timer.i"
  13.  
  14.     INCLUDE        "macros.i"
  15.     INCLUDE        "devices/prtbase.i"
  16.  
  17. *--------- Imported Functions --------------------------------------------
  18.  
  19.     XREF_EXE    Forbid
  20.     XREF_EXE    Permit
  21.     XREF_EXE    WaitIO
  22.     XREF        _SysBase
  23.  
  24.     XREF        _PD
  25.  
  26. *--------- Exported Functions --------------------------------------------
  27.  
  28.     XDEF        _PWait
  29.  
  30. *--------- printer.device/PWait ------------------------------------------
  31. *
  32. *   NAME
  33. *        PWait - wait for a time
  34. *
  35. *   SYNOPSIS
  36. *        PWait(seconds,microseconds)
  37. *
  38. *   FUNCTION
  39. *        PWait uses the timer device to wait after writes are complete
  40. *
  41. *------------------------------------------------------------------------
  42.  
  43. _PWait:
  44.     MOVEM.L    A4/A6,-(A7)
  45.     MOVE.L    _PD,A4
  46.     MOVE.L    pd_PBothReady(A4),A0
  47.     JSR    (A0)
  48.     TST.L    D0
  49.     BNE.S    error
  50.  
  51.     LEA    pd_TIOR(A4),A1
  52.     MOVE.W    #TR_ADDREQUEST,IO_COMMAND(A1)
  53.     MOVE.L    12(A7),IOTV_TIME+TV_SECS(A1)
  54.      MOVE.L    16(A7),IOTV_TIME+TV_MICRO(A1)
  55.     CLR.B    IO_FLAGS(A1)
  56.     MOVE.L    IO_DEVICE(A1),A6
  57.     JSR    DEV_BEGINIO(A6)
  58.     LINKEXE    Forbid
  59.     LEA    pd_TIOR(A4),A1
  60.     LINKEXE    WaitIO
  61.     LINKEXE    Permit
  62.     MOVEQ    #0,D0
  63.     TST.L    D0
  64.  
  65. error:
  66.     MOVEM.L    (A7)+,A4/A6
  67.     RTS
  68.  
  69.     END
  70.